/**
 * 
 */
package rer.controller;

import java.io.Serializable;
import java.util.List;

import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;

import rer.model.Evento;
import rer.persistencia.EventosDAO;

/**
 * @author Henrique Serrat
 *
 */
@Named("eventoBean")
@RequestScoped
public class EventoBean implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 6871958666654228652L;
	private EventosDAO eventosDAO;
	private Evento evento;
	
	public EventoBean(){
		eventosDAO = new EventosDAO();
		evento = new Evento();
	}
	
	
	/**
	 * @return the evento
	 */
	public Evento getEvento() {
		return evento;
	}

	/**
	 * @param evento the evento to set
	 */
	public void setEvento(Evento evento) {
		this.evento = evento;
	}
	
	
	/**
	 * @param evento
	 * @return
	 * @see rer.persistencia.EventosDAO#cadastrar(rer.model.Evento)
	 */
	public String cadastrar() {
		
		FacesContext context = FacesContext.getCurrentInstance();
		
		if (eventosDAO.cadastrar(evento) == true){
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Evento cadastrado com sucesso",""));
		}else{
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Evento nao cadastrado",""));
		}
		return "listar-eventos";
	}


	/**
	 * @param codigo
	 * @return
	 * @see rer.persistencia.EventosDAO#editar(int)
	 */
	public String editar(int codigo) {
		
		evento = eventosDAO.pesquisarEvento(codigo);
		
		return "editar-evento";
	}


	/**
	 * @param id
	 * @return
	 * @see rer.persistencia.EventosDAO#deletar(int)
	 */
	public String deletar(int id) {
		
		FacesContext context = FacesContext.getCurrentInstance();
		
		if(eventosDAO.deletar(id) == true){
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Evento deletado com sucesso",""));
		}else{
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "evento nao foi deletado.",""));
			System.out.println("N�o obteve sucesso ao deletar. LER LOG!");	
		}		
				
		return "listar-eventos";
	}


	
	public List<Evento> listar() {
		return eventosDAO.listar();
	}

	
	
	public String salvarEdicao(){
		
		FacesContext context = FacesContext.getCurrentInstance();
		
		if(eventosDAO.editar(evento)){
	
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Evento atualizado com sucesso", ""));
			
		}else {
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Evento nao foi atualizado", ""));
		}
		
		return "listar-tarefas";
	}

}
